class Watcher {
  constructor(vm, key, cb) {
    this.vm = vm
    // data 中的属性名称
    this.key = key
    this.cb = cb
    // 把 watcher 对象记录到 Dep
    Dep.target = this
    // 记录触发 update 前的值（更新前的值）, 此时会再次触发 get
    this.oldValue = vm[key]
    // 
    Dep.target = null
  }
  // 更新视图
  update() {
    // 获取新值
    let newValue = this.vm[this.key]
    if (this.oldValue === newValue) return
    // 将新的值传给回调函数并执行
    this.cb(newValue)
    //
  }
  //
}
